Dynomotion

Group: DynoMotion Message: 11366 From: geraldft Date: 4/12/2015
Subject: Closed Loop Stepper standby mode
Hi  I have been trying out the closed loop stepper mode with a small nema 17 motor and a CUI encoder.  Step motor resolution is 5,000ppr and the encoder resolution is 1,000 x 4ppr.   Ratio is 1.25

This seems to work as expected but I have found one issue when the motor is at rest.  If the motor has been stopped such that its destination is not an integer then it will pulse back and forth in tiny steps.  If I move it to a round number destination then it settles down.

While this doesn't cause any visible issue in the drive train due to gear reduction - in practice my motors get hotter - as I rely on low power standby mode to allow them a too cool off a little between runs.

So is there a way to overcome this problem?

Thanks Gerald
Group: DynoMotion Message: 11367 From: Tom Kerekes Date: 4/12/2015
Subject: Re: Closed Loop Stepper standby mode
Hi Gerald,

That is to be expected as it is impossible for the servo to have zero error if the commanded destination isn't an exact encoder position.  For example if commanded to encoder position 1.2 and the encoder reads 1 then the error will be 0.2.   If the encoder moves to 2 then the error will be -0.8.  (Note I'm ignoring the 1.25 factor for simplicity as it doesn't really change anything).  Any Integrator in the system will cause a dither between the two positions where 80% of the time is spent at 1 and 20% of the time is at 2.  So the average over a long time is exactly 1.2.

KFLOP has Deadband parameters to help eliminate the dither.  The Deadband Range allows you to specify an error range to be treated with lesser or zero gain.  So you might try a Deadband Range=1.5 and Deadband Gain of 0.   This basically tells the Servo to treat errors less than 1.5 as if they were zero and to make no corrections.

Dither is actually very complex nonlinear dynamic behavior that is dependent on your system.  Adding Deadband may or not stop the dither.  You may find it now dithers one or more counts away.  Or may oscillate back and forth several counts. 

There is an example called AntiServoDither__ALL.c that you might also try to completely disable the Integrator and reduce gains when the destination hasn't been moving.

HTH
Regards
TK

Group: DynoMotion Message: 11370 From: geraldft Date: 4/12/2015
Subject: Re: Closed Loop Stepper standby mode
Well yes it does seem to work - though the motor has no load at present.  Hopefully this does the trick.  I'm not sure if I will use this feature much yet, but good to know what it does.  My system has very low backlash so it would be mainly to correct for loss of steps over time.

Thanks Gerald